﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace masaustu
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            OgrencilerBasla();
            //webBrowser1.Visible = false;
        }
        private void Basla()
        {
            islemVar = true;
            webBrowser1.Navigate("http://www.obis.sakarya.edu.tr");
            zaman.Interval = 1000;
            zaman.Tick += new EventHandler(zaman_Tick);
            zaman.Start();
        }
        Timer zaman = new Timer();
        private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
        {

        }

        string sayfa="";

        void zaman_Tick(object sender, EventArgs e)
        {
            switch (Sayfa())
            {
                case "girissayfa": Odaklan(); break;
                case "anasayfa": NotSec(); break;
                case "notsayfa": NotSuz(); zaman.Stop(); break;
                case "hatasayfa": islemVar = false; zaman.Stop(); break;
            }
        }

        private void Odaklan()
        {
            if (webBrowser1.Document != null)
            {
                HtmlElementCollection elems = webBrowser1.Document.GetElementsByTagName("input");
                foreach (HtmlElement elem in elems)
                {
                    String nameStr = elem.GetAttribute("name");
                    if (nameStr != null && nameStr.Length != 0)
                    {
                        if (nameStr == "frm_kullanici")
                        {
                            elem.SetAttribute("value", OgrenciNo);
                        }
                        else if (nameStr == "frm_sifre")
                        {
                            elem.SetAttribute("value", Sifre);
                        }
                        else if (nameStr == "frm_login_submit")
                        {
                            elem.InvokeMember("click");
                            sayfa = "anasayfa";
                        }
                    }
                    
                }

            }
        }

        private void NotSec()
        {
            if (webBrowser1.Document != null)
            {
                HtmlElementCollection elems = webBrowser1.Document.GetElementsByTagName("input");
                foreach (HtmlElement elem in elems)
                {
                    String nameStr = elem.GetAttribute("name");
                    if (nameStr != null && nameStr.Length != 0)
                    {
                        
                        if (nameStr == "not")
                        {
                            elem.InvokeMember("click");
                            sayfa = "notsayfa";
                        }
                    }
                }
            }
        }

        private string Sayfa()
        {
            if (webBrowser1.Document != null)
            {
                HtmlElementCollection elems = webBrowser1.Document.GetElementsByTagName("div");
                foreach (HtmlElement elem2 in elems)
                {
                    if (elem2.InnerText != null)
                    {
                        if (elem2.InnerText.Trim() == "Bilgi :: OBIS servisi bilgi ekranı")
                        {
                            return "anasayfa";
                        }
                        if (elem2.InnerText.Trim() == "Seçilen Dersler :: Seçtiğiniz derslere ait bilgilere ulaşabilirsiniz")
                        {
                            return "notsayfa";
                        }
                        if (elem2.InnerText.Trim() == "Hatalı kullanıcı adı ya da şifre")
                        {
                            return "hatasayfa";
                        }
                    }
                }

                elems = webBrowser1.Document.GetElementsByTagName("input");
                foreach (HtmlElement elem in elems)
                {
                    String nameStr = elem.GetAttribute("name");
                    if (nameStr != null && nameStr.Length != 0)
                    {

                        if (nameStr == "frm_kullanici")
                        {
                            return "girissayfa";
                        }
                    }
                }

                

            }
            else
            {
                return "bos";
            }
            return "bos";
        }
        veriDataContext veri = new veriDataContext();
        
        private void NotSuz()
        {
            zaman.Stop();
            string DersKod = "";
            string DersAd = "";
            
            int OgrTuru =0;
            string Saat = "";
            int Kredi =0;
            string Calisma = "";
            string Notu = "";
            string Oran = "";
            string IlanTarihi = "";
            HtmlElementCollection elems = webBrowser1.Document.GetElementsByTagName("table");
            int say = 0;
            int saytr = 0;
            int saytd = 0;
            foreach (HtmlElement elem in elems)
            {
                
                say++;
                if (say == 6)
                {
                    HtmlElementCollection TabloTrLer = elem.GetElementsByTagName("tr");

                    foreach (HtmlElement tr in TabloTrLer)
                    {
                        saytr++;
                        if (saytr > 3 && saytr<TabloTrLer.Count-1)
                        {
                            saytd = 0;
                            HtmlElementCollection TdLer = tr.GetElementsByTagName("td");
                            foreach (HtmlElement td in TdLer)
                            {
                                saytd++;
                                switch (saytd)
                                {
                                    case 1:
                                        DersKod = td.InnerText.Trim(); break;
                                    case 2:
                                        DersAd = td.GetAttribute("title"); break;
                                    case 3:
                                        OgrTuru = Convert.ToInt32(td.InnerText); break;
                                    case 4:
                                        Saat = td.InnerText; break;
                                    case 5:
                                        Kredi = Convert.ToInt32(td.InnerText); break;
                                    case 6:
                                        Calisma = td.InnerText; break;
                                    case 7:
                                        Notu = td.InnerText; break;
                                    case 8:
                                        Oran = td.InnerText; break;
                                    case 9:
                                        IlanTarihi = td.InnerText; break;

                            }
                                //MessageBox.Show(tr.InnerText);
                            }
                            veri.DersGuncelle(OgrId, DersKod, DersAd, OgrTuru, Saat, Kredi, Calisma, Notu, Oran, IlanTarihi);
                            veri.SubmitChanges();
                        }
                    }
                }
            }
            webBrowser1.Navigate("http://www.gate.sakarya.edu.tr/index.php?page=logout");
            islemVar = false;
        }


        Timer OgrenciTimer = new Timer();

        private void OgrencilerBasla()
        {
            OgrenciTimer.Interval = 1000;
            OgrenciTimer.Tick += new EventHandler(OgrenciTimer_Tick);
            OgrenciTimer.Start();
        }

        bool islemVar = false;
        OgrenciListeResult ogrenci;
        void OgrenciTimer_Tick(object sender, EventArgs e)
        {

            if (islemVar == false && webBrowser1.IsBusy == false)
            {
                ogrenci = veri.OgrenciListe(OgrId).FirstOrDefault();

                if (ogrenci == null)
                {
                    OgrId = 0;
                }
                else
                {
                    OgrId = ogrenci.Id;
                    OgrenciNo = ogrenci.KullAdi;
                    Sifre = ogrenci.Sifre;
                    Basla();
                }

            }
        }

        int OgrId = 0;
        string OgrenciNo;
        string Sifre;
        
    }
}

